package com.wfh.easychat.model.entity;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;

import com.wfh.easychat.model.vo.UserInfoVo;
import lombok.Data;
import org.springframework.beans.BeanUtils;

/**
 * 用户信息
 * @author fenghuanwang
 * @TableName user_info
 */
@TableName(value ="user_info")
@Data
public class UserInfo implements Serializable {
    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 0:直接加入 1:同意后加好友
     */
    private Integer joinType;

    /**
     * 性别 0:女 1:男
     */
    private Integer sex;

    /**
     * 密码
     */
    private String password;

    /**
     * 个性签名
     */
    private String personalSignature;

    /**
     * 状态
     */
    private String status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 最后更新时间
     */
    private Date updateTime;

    /**
     * 最后登录时间
     */
    private Date lastLoginTime;

    /**
     * 地区
     */
    private String areaName;

    /**
     * 地区编号
     */
    private String areaCode;

    /**
     * 最后离开时间（可选）
     */
    private Date lastOffTime;

    /**
     * 用户觉色
     */
    private String userRole;

    /**
     * 逻辑删除：0=未删除，1=已删除
     */
    @TableLogic
    private Integer isDelete;

    /**
     * 对象转封装类
     *
     * @param userInfo
     * @return
     */
    public static UserInfoVo objToVo(UserInfo userInfo) {
        return BeanUtil.copyProperties(userInfo, UserInfoVo.class);
    }
}